/**
 ***********************************************************************************************************
 * 
 ***********************************************************************************************************
 * @file RBRenderPassFullScreen.h
 ***********************************************************************************************************/

#ifndef __RBRENDERPASSFULLSCREEN_H__
#define __RBRENDERPASSFULLSCREEN_H__

#ifdef  HEADER_ONCE
#pragma HEADER_ONCE
#endif

#ifdef  HEADER_MSG
#pragma HEADER_MSG(RBRenderPassFullScreen.h)
#endif

/***********************************************************************************************************
 * Includes
 ***********************************************************************************************************/
#include "RBHandle.h"

/***********************************************************************************************************
 * Forward declarations
 ***********************************************************************************************************/
class RBMaterial;
class RBEffect;
class RBRenderer;
class RBGeometry;
class RBRenderTargetGroup;
class RBCamera;

/***********************************************************************************************************
 * Classes
 ***********************************************************************************************************/

class RBRenderPassFullScreen
{
public:
                    RBRenderPassFullScreen      (const RBString& strTechniqueName);
                   ~RBRenderPassFullScreen      ();

    RBMaterial*     GetMaterial                 () const;
    RBEffect*       GetEffect                   () const;

    void            SetEffect                   (RBEffect* pEffect);

    virtual void    Render                      (RBRenderer* pRenderer, RBRenderTargetGroup* pRTT);

private:
    static RBHandle<RBGeometry>           ms_pFullScreenTriangle;
    RBMaterial*                  m_pMaterial;
    RBEffect*                    m_pEffect;

    static uint32   ms_uiFullScreenPasses;
};

/***********************************************************************************************************/

#endif // __RBRENDERPASSFULLSCREEN_H__
